package org.zs.miracle.service.role;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
import org.zs.miracle.common.base.dto.BaseManyLongIdDTO;
import org.zs.miracle.service.role.model.dto.AddRoleInputDTO;
import org.zs.miracle.service.role.model.dto.EditRoleDTO;
import org.zs.miracle.service.role.model.dto.RolePageQueryDTO;
import org.zs.miracle.service.role.model.dto.RoleUserModel;
import org.zs.miracle.service.role.model.dto.SetRoleStateDTO;
import org.zs.miracle.service.role.model.dto.SetRoleUserInputDTO;
import org.zs.miracle.service.role.model.vo.RolePageQueryListItemVo;
import org.zs.miracle.service.role.model.vo.RoleVo;

/**
 * 角色管理 Service
 */
public interface IRoleService {
  Boolean addRole(AddRoleInputDTO inputDTO);
  
  Boolean delRole(BaseManyLongIdDTO inputDTO);
  
  Page<RolePageQueryListItemVo> pageQueryList(RolePageQueryDTO inputDTO);
  
  List<RoleVo> queryList(Boolean enable);
  
  Boolean editRole(EditRoleDTO inputDTO);
  
  List<RoleUserModel> queryRoleUserList(Long id);
  
  /**
   * 批量给角色设置用户
   *
   * @param inputDTO SetRoleUserInputDTO
   * @return 成功true
   */
  Boolean setRoleUser(SetRoleUserInputDTO inputDTO);
  
  /**
   * 设置角色启用状态
   */
  Boolean setState(SetRoleStateDTO inputDTO);
}